操作系统除了处理常规数据,如文本,程序,电子表格等,还可能处理其他类型的数据,如多媒体数据。多媒体数据由连续媒体(音频、视频)数据以及常规文件构成。
一、什么是多媒体
1、媒体传送
多媒体数据同样存储在文件系统中,与常规文件的区别在于,多媒体文件必须以某一特定速率访问。
多媒体文件可以存储在远程服务器上,使用流技术通过网络传送到客户端。
两种流技术:
1)渐进式下载
文件下载到本地,但可以边下载边播放。适合短小的媒体文件。
2)实时流
媒体文件被串流传递给客户端,客户端只播放而不存储。适合大文件。
两种技术都允许客户端随意播放流媒体中的不同点。
有2种类型的实时流可用:
1)实况流
用于传送一个活动,如体育赛事。例子如视频会议。
2)点播流
用来传送如整部电影之类的大媒体流。可以随时开始,没有像实况流那种错过、晚点的情况。
2、多媒体系统的特点
多媒体系统的要求不同于常规的应用软件。通常有如下特点:
1)文件很大
2)传输速率要求高
3)播放速率要求高
3、操作系统问题
对于传送连续媒体数据的计算机系统,必须保证一定的速率和时间要求,称为服务质量。这牵扯到系统的CPU调度、磁盘调度和网络管理等问题:
1)压缩和解码,需要大量的CPU处理
2)多媒体任务需要一定的优先级,以满足最后期限要求
3)文件系统要满足播放速率
4)网络要满足传输速率
二、压缩
多媒体文件由于大小和速率的要求,常被压缩。一旦被压缩(编码),必须解压缩(解码)才能访问。
压缩算法有有损压缩和无损压缩。有损压缩算法往往消除某些数据,如人耳无法探测到的高频或低频。
三、多媒体内核的要求
多媒体文件要求传输和播放速率。具体而言,其包括的服务质量定义:
1)吞吐量
指多媒体所需的数据传输率。
2)延误
指客户端等待收到流的时间。
3)抖动
与延误有关,但抖动是指流播放期间发生的延误。客户端往往通过缓冲一定量的数据来弥补。
4)可靠性
传输和处理过程中如何处理错误。
1、客户端和服务器之间的服务质量可以协商。例如,连续媒体的数据可能在不同层次的质量级别被压缩;客户端与服务器协商一个特殊的数据传输率,从而播放时允许某一层次的质量。此外,媒体播放器允许按照连接速度来播放,客户端按照特定的速率来接收,等等。
2、为了保证服务质量,操作系统经常使用接纳控制,只有当服务器有足够的资源来满足请求时才接受服务请求。
多媒体系统中,实施接纳控制的常用技术是使用资源保留,包括CPU、内存、文件系统、设备和网络(资源既可以独占,也可以是共享)。要想使用资源,客户端比继续提前对资源作出保留请求,如果没通过,保留被拒绝。接纳控制机制为每一类型的资源分配一个资源管理器。
四、CPU调度
多媒体系统要求硬实时调度,保证关键进程会在特定的时间内完成。
其次,调度非实时任务时,大多数多媒体操作系统使用动态优先级,以便给予交互进程更高的优先级。然而,当调度实时任务时,则分配静态优先级来简化调度程序的设计。
五、磁盘调度
多媒体文件有两个限制因素:截止期限和速率要求。必须满足这两个制约因素,才能保证服务质量,同时也要因此而优化磁盘调度算法。不幸的是,这两个制约因素常常有冲突,鱼与熊掌如何才能得兼?
1、最早期限优先调度
根据截止期限来处理请求,与截止期限最接近的请求优先处理。
这个方法的问题是没有考虑到磁盘头的当前位置,严格按照截止期限处理请求的话可能会导致需要更多的寻道时间。
2、SCAN-EDF调度
结合EDF(最早截止期限优先调度算法)和SCAN调度(磁头在磁盘中以一个方向移动,根据接近当前柱面的远近来处理请求。磁盘臂一旦到达磁盘尾部,则调转方向)的综合算法:以EDF开始,但是用SCAN顺序来处理有相同截止期限的请求。对于截止期限不同,但位置相当靠近的请求,采用批处理。
六、网络管理
当数据通过网络传送时,传输很可能遇到阻塞、延误和其他的网络传输问题(或曰时间问题)。对于有时间要求的多媒体数据,两端主机之间的时间问题必须是同步的,即服务器传送内容的同时,客户端播放它。
专用于时间问题的协议是实时传输协议(RTP)。RTP协议是一种传送实时数据的Internet标准。但RTP不保证服务质量(QOS),相反,它允许接受者消除由于延误和网络堵塞引起的抖动。
何以置之?
1、单播和多播
单播:服务器跟客户端一对一传送
广播:服务器向所有客户端传送内容,而不管它们是否愿意接收
多播:服务器向一组愿意接收的客户端传送内容
单播浪费,广播唐突,多播比较合适。问题是,如果从服务器到客户端的路由必须跨中间路由器,路由器也必须支持多播。目前,大多数流媒体是单播传送。
2、实时流协议
实时流协议提供了客户端和服务器之间有状态的连接,允许客户端在流播放过程中暂停、回放等操作。