OPERATING SYSTEM SUPPORT FOR MULTIMEDIA

The last couple of years have seen an increase in multimedia content in almost every context –web pages (MPEG clips, Flash animations), desktop (Media Player, QuickTime, NetMeeting), consumer products (DVD players, Set-top Boxes, Interactive TV). These content-rich applications rely on extensive support by the operating system (OS). The users’ thresholds of tolerance for performance degradation vary largely on the type of content – delay/jitter in static text and images is acceptable, dropped frames or lower resolution in video is moderately acceptable whereas even the slightest degradation in audio (in the form of scratch, skip or pop) is not acceptable at all. To add to this, further complications arise in user desktops where a mix of applications is run simultaneously with different levels of performance degradation. Therefore, good Support is very essential for multimedia applications.
Characteristics of Multimedia
Most of the multimedia contexts existing these days have very characteristic parameters. This characterization leads to a more customized design per the needs and wants of the applications displaying the content and better resource utilization. Digital audio needs a fixed sampling of 44 kHz while video MPEG rendering at 30 fps is desirable. The processing need for both these types is periodic and sequential in nature. However, MPEG frames can be either I Frames (computation intensive) or B/P Frames (difference information). This behavior leads us to the conclusion that multimedia applications need real-time support from the underlying OS. This requirement is flexible as missing of a certain deadline does not lead to a catastrophic failure. Either the information that was being processed is just discarded (B/P Frame) or the computation is allowed to continue for a short duration, if it has important information for subsequent computations (I-Frame). Additionally, users would prefer a consistent low frame rate or resolution to a randomly varying rate or resolution with an average close to 30 FPS. Thus, multimedia applications need the support of soft real-time OS’s to be able to guarantee a certain level of QoS.
Multimedia applications on the desktop computers rely on the support provided by the general purpose OS’s – flavors of UNIX (Solaris, HP UNIX, Linux, and OS-X) and flavors of Windows. In an attempt to match the requirements imposed by multimedia, these OS’s have been refurbished in key areas. They provide an extra class of priority called real-time priority. Multimedia applications can be made to run at this level to achieve some of its requirements. The experimental results of using SRV4 Unix are described in [2]. The experiments consisted of comparative analysis when three classes of applications – interactive, multimedia-rich and batch applications were run simultaneously on the workstation. The results clearly indicate that the multimedia applications can no doubt benefit from the real-time priority class but at the cost of degraded performance of both the interactive and batch applications. Additionally, this also affects the system services running as demons, which run at high priority (not real-time), to a large extent.
The hardware these days consist of fast processors, large and comparatively fast primary and secondary storage and good network bandwidth. However, multimedia applications perform poorly. This is clearly indicated by the small window size of the video players on the desktops. Besides this, the OS’s do not support mechanisms to ensure guaranteed completion of a task before a certain deadline. To add to this, kernel operations such as page fault handling, cache miss, interrupts from I/O devices, critical sections and context switch overhead cause unpredictable runtime behavior. The key to good QoS, therefore, boils down to good resource allocation policies provided by the OS. Applications often view the OS as an abstraction of the hardware, which comprises of different resources – CPU, memory, disk and I/O devices. In order to arbitrate various applications from over usage and contention, policies and mechanisms are required for efficient resource utilization.
The support provided by the general purpose OS’s on the desktops do not provide sufficient support for multimedia, nor do special-purpose OS’s designed for only real-time applications. Hence, multimedia needs support in different areas to provide the intended viewing experience of the application. Due to the insufficient level of support, multimedia application developers are taking different routes. One of them is the deliberate reduction in content (RealAudio, QuickTime, MPEG-4, etc.) to provide viewable and deliverable speeds on desktops. This may be a good approach but I feel that instead of better support needs to be provided to match the high bandwidth and performance requirements of multimedia applications. Based on the above survey, I am convinced that the following feature set ought to be provided in an OS for multimedia applications:
·         High level of user control in terms of preferences
·         Strict but flexible admission control
·         Simple and straightforward framework for resource allocation without too much system overhead
·         Fine-grained resource accounting
·         Feedback path for smooth degradation of performance on overload
·         Support for multiple schedulers allowing a mix of applications to be run on the system
·         Minimal amount of backward compatibility for supporting legacy applications
·         Good distribution of slack time

Popular Posts