【操作系统】第十一章-多媒体操作系统
作者:互联网
十一、多媒体操作系统
随着计算机技术的不断发展和应用的普及,多媒体设备层出不穷,如数字视听设备、数码相机、可穿戴设备等等。它们的出现极大地丰富了人们的文化生活。这些设备的一个共同特点是,它们都是数字化的:利用计算机技术对音频和视频等信息进行处理、存储和传输。于是便提出了这样一个问题:基于计算机具有非常强的数字处理、存储和传输能力这一点,是否可在OS中集成这些功能?答案是肯定的,由此促使传统OS发展为多媒体OS。
1.多媒体系统简介
1.1 多媒体的概念
-
数据、信息与媒体
所谓数据,是反映客观事物及其运动状态的信号,人体感觉器官或观测器的感知所形成的以文本、数字、事件或图像等形式保存的原始记录。书籍与数据之间没有建立任何联系或关系,呈分散和孤立的特性。数据必须经过加工处理才能形成信息。
信息是以数据的形式存在和进行运行处理的,其实质是对客观事物的运动特征及内涵的抽象,是由一系列有组织、有关系的数据组成。
所谓媒体,是指媒介、传媒、媒质或介质,在计算机领域赋有两种含义:一是指用以存储传输信息的实体,如磁带、磁盘、光盘和半导体存储器、光纤等;另一种是指信息的载体,客观世界中存在着各种各样不同形式的媒体,称做不同的信息媒体,如数字、文字、声音、图像和图形,多媒体技术中的媒体是指后者。
-
媒体的分类
(1) 感觉媒体:是人们的感觉器官所能感觉到信息的自然种类。
(2) 表示媒体:说明交换信息的类型,定义信息的特征,一般以编码的形式描述。
(3) 呈现媒体:是获取信息、再现信息的物理手段,一般包括计算机的输入/输出设备。
(4) 存储媒体:存储数据的物理设备。
(5) 传输媒体:用以传输数据的物理设备介质。
(6) 交换媒体:在系统之间交换信息的手段和类型,可以是存储媒体或传输媒体,也可以是两种媒体的组合。
-
多媒体
所谓多媒体(multimedia),目前没有统一的定义,一般是指多种方法、多种形态传输(传播)的信息介质、多种载体的表现形式以及多种存储、显示和传递方式。在计算机领域,多媒体往往是指多媒体技术,即是同时对多个感觉媒体信息进行获取、处理、编辑、存储和展示的理论、技术、设备、标准等规范的总称。
多媒体技术将成熟的音像技术、计算机技术和通信网络技术进行逻辑上的集成,形成了一种多维信息处理技术。该技术的核心是能够对多媒体信息进行集成与交互等综合处理的多媒体计算机技术。
1.2 超文本和超媒体
-
超文本(hypertext)
超文本是一种文本信息的组织方式,相比传统的线性文本组织方式而言,超文本的组织方式是非线性的,与人的思维方式和工作方式更加接近。
在超文本的组织结构中,文本按照其内部信息的逻辑独立性及相关性,被划分为多个不同大小的信息块,将这些信息块作为不同的结点,通过结点之间的链接,组织成一种非线性的网状结构。显然,在这种网状结构中,作为基本单位的结点之间除了链接指针描述了他们之间逻辑上的相关性外,不会存在任何固定的顺序关系,亦即文本的信息块之间也不存在任何固定的顺序关系。
-
超链接(hyperlink)
超链接也称超文本链接(hypertextlink),是指文本中的词、短语、符号、图像、声音剪辑或影视剪辑之间的链接,或者是指它们与其它的文件、超文本文件之间的链接。
-
超媒体(hypermedia)
所谓超媒体,就是多媒体与超文本的结合,在多媒体技术的支持下,文本信息不仅可以包含文字,还可以包含诸如图形、图像、视频、音频等多媒体信息,这些信息按照超文本结构和超链接方式进行组织,是节点和链源类型更加多样化、链结构更加复杂的超文本。一般超媒体所构成的超媒体系统具备网状复杂信息链接结构、多媒体信息节点、导航和浏览功能、窗口功能,以及网络共享及交互式的用户与程序接口等特征。
1.3 多媒体文件的特点
- 多样性
- 极高的数据率
- 实时性
- 集成性
- 交互性
1.4 多媒体硬件与软件系统
-
多媒体硬件系统的组成
(1) 多媒体主机
(2) 多媒体输入设备
(3) 多媒体输出设备
(4) 多媒体存储设备
(5) 多媒体接口卡
(6) 人机交互设备
-
声卡(sound card)
声卡又称音频卡,用于处理音频信号。
-
视频卡(video card)
视频卡又称显示卡,用于处理视频信号。
-
数码相机
-
数码摄像机
-
智能传感器
智能传感器是一种具有采集、处理、交换信息功能,集成了传感器、微处理机、通信装置的嵌入式设备。
-
多媒体软件系统
多媒体软件系统也称为多媒体软件平台,是指多媒体系统运行、开发的各种软件和开发工具及多媒体应用软件的总和。硬件是多媒体系统的基础,软件是多媒体系统的灵魂。多媒体软件系统可划分为如下几部分:
(1) 多媒体驱动软件
(2) 多媒体操作系统
(3) 多媒体应用软件
2.多媒体文件中的各种媒体
2.1 音频信号
-
模拟音频和数字音频
(1) 模拟音频
声波在时间上是连续的,故属于模拟信号。现在收音机、电视机、DVD等设备中所发出的声音都属于模拟音频。声音是由多种不同频率的信号合成的,而声音的一个重要参数——频带,就是用来描述声音的频率范围的。一般人耳听到的音频信号频率范围为20Hz~20kHz。
(2) 数字音频。
在使用计算机对模拟音频进行处理前,必须先经过模/数转换,将模拟音频转换成数字音频。模/数转换分为如下三个步骤:
①采样。
②量化。
③编码。
-
数字音频文件类型
(1) WAV文件
(2) MIDI文件
(3) MPEG音频文件(MP3)
(4) APE文件
2.2 图像
-
图像的数字表示
在计算机中,图像是通过矩阵表示的,矩阵中的每个元素值对应于图像的一个基本元素,称为像素。每个像素用若干个二进制的位来表示其亮度、颜色和属性。如果图像只有两种亮度值,即黑白图像,可用一位来表示。如果要表示灰度图像,则需要多位二进制数表示,如用8位来表示,就可从百到黑分为256个不同的灰度,它可以精确地显现一般的黑白照片。显现彩色照片一般需要用24位、36位或48位来表示彩色。
-
图像的属性
(1) 分辨率
(2) 色彩深度
(3) 真/伪彩色
-
图像文件格式
(1) BMP格式
(2) GIP格式
(3) TIFF格式
(4) JPEG格式
2.3 视频信号
-
模拟视频
当前流行的电刷是模拟视频,电刷信号通过光栅扫描的方法显示在屏幕上,从屏幕顶部开始逐行地向下扫描,直至最底部,由此形成一幅图像,称为一帧。水平扫描线所能分辨出的点数称为水平分辨率,一帧中垂直扫描的行数称为垂直分辨率。在彩色电视中使用了R、G、B三种基本色进行配色,这三种信号可以分别传输。
(1) 彩色电视的制式
电视信号的标准也称为制式。目前世界上主要有三种制式:
① NTSC制式
② PAL制式
③ SECAM制式
(2) 隔行扫描和逐行扫描
虽然每秒25帧已完全能够使人眼感觉图像是连续的,但有一部分人会感觉到图像闪烁,这是因为在新图像到来之前,原图在视网膜上已逐渐减弱。如果增加帧频到每秒50帧,则由于视网膜上更多的是新图像,故而可以消除闪烁现象,但会导致对带宽提出更高的要求。一种巧妙的方法是,先利用半帧的时间从上到下地扫描奇数行,把半帧称为一个场,然后再利用半帧的时间从上到下地扫描偶数行。实际证明,每秒50场已完全感觉不到闪烁现象。这一技术被称为隔行扫描。而把依次扫描每一行的技术称为逐行扫描。
-
数字视频
如同前面所介绍的数字图像一样,数字视频中的每一帧也是由大量的像素组成的,每个像素用若干二进制位来表示。
-
视频文件格式
(1) MPEG文件格式
(2) GIF文件格式
(3) AVI文件格式
2.4 多媒体数据压缩及其标准
-
数据压缩和解压缩
所有数据压缩系统都要求有两个算法:一个是用于对数据进行压缩,另一个是用于对压缩数据进行解压缩。压缩与解压缩间允许存在不对称性。这是因为:
(1) 在许多情况下,一个多媒体文件只需要一次压缩,但却需要经常解压缩。基于这样的不对称性,如果解压缩算法的速度快且不需要硬件,那么即使压缩的算法速度慢且需要硬件,这也是值得的。
(2) 压缩与解压缩并不需要是完全可逆的,即当一个多媒体文件被压缩后,再对它进行解压缩时,没有必要与原始文件精确一致,允许存在着某些轻微的差异,这样可获得更好的压缩效果。
-
静止图像的压缩标准
-
运动图像的压缩算法
-
运动图像的压缩标准
-
音频压缩标准
3.多媒体进程管理中的问题和接纳控制
3.1 实时任务的处理需求和描述
-
实时任务的处理需求
在通常的多媒体系统中,必须按照严格的时间间隔对实时任务进行处理。或者说,必须周期性地对数据进行处理,并在一规定的截止时间前完成。
(1) 多媒体进程管理,应能保证在系统中运行的所有硬实时HRT任务的截止时间要求,而且是在每一个周期里都提供这样的保证,否则会引起难以预料的后果。
(2) 对在系统中运行的软实时SRT任务,进程管理应当保证它们的大多数截止时间要求,仅对极少数的截止时间要求,进程管理如不能保证,其所引发的后果不会十分严重。
(3) 当系统中有硬实时任务时,决不允许出现优先级倒置的情况,这样才能保证硬实时任务的截止时间需求。如果系统中仅有软实时任务,则只允许很少出现优先级倒置的情况,以便能保证软实时任务的大多数截止时间。
(4) 实时任务的处理时间,不仅包含每个周期对实时任务本身的处理时间,还应包含为调度每一个任务所花费的时间,因此,应尽量减少实时调度所付出的开销。
-
软实时任务的时间特性描述
在多媒体系统中,是对连续媒体数据流进行处理。在播放数字电影时,媒体服务器将周期性地(对于PAL制式为40ms)逐帧送出数据。相应地,媒体服务器中的处理机必须在规定的时间内对它进行处理后送给用户。可见播放数字电影将联系着一个截止时间或称为最后时限。这说明数字电影是一个要求比较严格的周期性软实时任务。
3.2 多媒体进程管理中必须解决的问题
-
同时运行不同类型的软实时任务
通常媒体服务器可向众多的用户提供各种多媒体服务,如数字电影和电视服务。在系统中,每一部数字电影都是作为一个软实时任务运行的,彼此间相互独立。不同的软实时任务所处理的数据量相差甚远,可能相差数十倍。每个任务的时间特性也各不相同,它们有不同的开始时间、截止时间、周期时间和CPU处理时间。简而言之,多媒体进程管理必须具有能支持多种不同类型的软实时任务同时运行的能力。
-
支持软实时任务和非实时任务同时运行
一个具有多媒体功能的通用操作系统,它既应面向软实时任务的用户,又需面向非实时任务的用户,如交换型作业的用户。因此在系统中,应当允许多种类型的SRT任务和不同类型的非实时任务并存。相应的进程管理应具备以下两方面的功能:一方面需要满足SRT任务对截止时间的需求;另一方面又应使非实时任务的用户满意,并能很好地协调多种任务的并发。
-
提供适当的进程接纳机制
在多道程序环境下,如果在系统中同时运行的SRT任务太多,将难以保证实时任务的截止时间的需求。反之,若在系统中的SRT任务太少,CPU又会得不到充分利用。为解决此矛盾而引入了对进程的接纳控制机制,目前常用的是基于预留的进程接纳机制。当新进入的SRT任务提出接纳请求时,接纳机制将计算是否有足够的CPU时间片(带宽)来接纳该进程,如果有足够的CPU带宽,便接纳它,并为每一个被接纳的SRT任务预留它在运行时所需要的CPU带宽,如果已无足够的带宽,便拒绝接纳。
-
采用实时调度算法
实时调度在保证SRT任务的实时性方面起着至关重要的作用。在具有多媒体功能的操作系统中,一个好的实时调度算法应能向每个SRT任务提供可以接受的截止时间保证,即能满足每一个SRT任务绝大多数的截止时间需求。在SRT系统中,使用最多的两种调度算法是:
(1) 速率单调算法
(2) 最早截止时间优先算法
3.3 软实时任务的接纳控制
为了能在任何负载情况(包括过载)下,都可以基本上保证软实时任务的截止时间要求,需要在进程管理中新增两个重要的功能和机制:一是CPU带宽预留功能和机制;二是CPU带宽调度功能和机制。为此在进程管理中应配置两个重要的组件:①CPU代理(broker)实体,它的主要功能是根据新进入系统进程的请求,确定是否接纳它作为SRT任务;②软实时任务CPU调度实体,这是用于对SRT任务进行实时调度的程序。
-
SRT任务带宽和尽力而为任务带宽
(1) SRT任务带宽
把CPU的一部分带宽分配给SRT任务运行。如果SRT任务被接纳了,它将获得(分配到)一部分SRT任务带宽,进程管理便会尽可能地保证它们的实时性。
(2) 尽力而为任务带宽
如果SRT任务未能被接纳,系统则有可能将该SRT任务分配到尽力而为任务带宽中运行,此时系统只是尽可能地让它们得到运行的机会,但不做任何保证。
-
接纳控制
SRT任务在进入系统后,必需向CPU代理给定其定时服务质量参数,其中包含SRT任务的运行周期§、每一周期中的运行时间(t)和CPU占有率u。当CPU代理收到请求后,首先执行接纳控制。它根据一定的调度策略计算,确定是否可以接纳该任务。如果在接纳后,不仅能够保证它所要求的截止时间需求,而且还不会影响到原有SRT任务的运行,则CPU代理便可以接纳该进程,将它插入到进程就绪队列中等待调度。如果不能保证,将拒绝接纳。此时请求进程可有两个选择:
(1) 等待以后再次申请接纳控制,直到被接纳为止。
(2) 由系统将该进程放入到尽力而为任务队列中运行。
-
CPU代理进程
CPU代理的主要任务是,接收应用程序的接纳请求,根据接纳策略,做出是否接纳的决定,并将被接纳的进程放入就绪队列。至于应调度哪一个进程运行,则应由进程调度程序确定。通常,系统把CPU代理进程作为一个守护进程,平时它处于睡眠状态,一旦有新的应用程序发来接纳请求时,代理进程将被唤醒,并根据该任务的请求来确定系统是否接纳它。如果接纳了该进程,CPU代理将为它预留足够的CPU带宽,以调度时间的形式写入到预留表(也就是供实时调度程序使用的调度表)中。
-
预留策略
(1) 预留模式
①立即预留
②高级预留
(2) 基于服务质量参数范围的预留
①最小预留策略
②平均预留策略
③最大预留策略
(3) 预留排序
①按先来先服务策略排序,先到达的请求进程优先获得服务。
②按优先级排序,根据进程的优先级大小依次为所有请求进程进行服务。
4.多媒体实时调度
4.1 最简单的实时调度方法
在多媒体服务器中,将为所播放的每一部数字电影建立一个进程。其主要任务是,不断接受从硬盘上传送来的帧,经适当处理后,便送往屏幕。最简单的实时调度方法是,假定所要播放的电影都具有相同的类型,如都是采用相同的制式、分辨率和压缩比的彩色数字电影。这样,为这些电影所建立的进程可具有相同的周期和处理时间。因此,可将它们按FCFS原则排成一个进程就绪队列,并采用定时轮转的策略来调度和运行它们。
4.2 速率单调调度(Rate Monotonic Scheduling, RMS)算法
RMS算法是一个静态的、优先级驱动的算法,适用于抢占式优先级调度方式以及实时任务是周期性的情况。在采用该算法时,系统中的进程应满足如下条件:
(1) 在系统中允许同时存在周期性进程和非周期性进程,所有周期性任务具有固定的周期。
(2) 所有的进程之间相互独立,互不依赖。
(3) 对于周期性进程而言,所有进程在一个周期中,所需完成的工作量是相同的,而且任务还必须在周期内完成,不会影响到下一个周期的任务。
- 优先级的确定
- 调度算法能否有效调度的衡量
- RMS算法实例
4.3 EDF算法与RMS调度算法的比较
-
处理机的利用率
在利用RMS算法时,处理机的利用率存在着一个上限。它随进程数的增加而减小,逐渐趋于最低的上限为0.693。然而对于EDF算法,并不存在这样严格的限制,因而该算法可以达到100%的处理机利用率。事实上,对于任意一组任务,只有用静态优先级调度算法能够调度的,这一组任务也必定可用EDF算法来调度。
-
算法复杂度
RMS算法比较简单,计算出的每一个进程的优先级,在任务运行期间通常不会改变。而EDF算法的开销较大,因为它所依据的是动态优先级,它会不断地改变,每次调度时都需要先计算所有进程截止时间的大小,再从中选择最小的。
-
调度的稳定性
RMS算法易于保证调度的稳定性,因为RMS算法在调度时所依据的优先级是静态的。因此只需要赋予重要进程较高的优先级,使之在进程整个运行期间都能保证优先获得处理机。然而对于EDF算法,由于所依据的截止时间是动态的,截止时间在运行期间不断变化,因此很难使得最重要进程的截止时间得到保证。
5.媒体服务器的特征和接纳控制
5.1 媒体服务器的特征
-
多媒体文件的多种媒体性
如前所述,一部数字电影是由多种媒体文件组成的。其中包含了一个视频文件、若干种语言的音频文件,以及不同国家文字的文本文件,如下图示出了一部电影所包含的文件,而且在播放时,这些媒体数据流之间还必须保持同步。
-
拉型和推型文件服务器
在传统的服务器中,进程要访问一个文件时,应先用open系统调用将文件打开,然后再用read系统调用把文件中的数据读出。如果把这种方式也用于多媒体文件系统中,则用户每发出一个read系统调用命令时,服务器便送出一帧数据,如下图(a)所示。该方式一方面要求用户必须以精确的时间间隔不断发出read命令,读出一帧数据;另一方面要求服务器每个周期都能及时地提供数据。可见,该方式不仅麻烦,而且也很难满足实时性要求。通常把传统文件服务器称为拉型服务器。因为它需要用户不断发出命令,把数据“拉”过来。
为了解决上述问题,在多媒体文件服务器(视频服务器)中,采用了类似于录像机中所用的工作方式。由用户进程发出start系统调用,并给出文件名和有关参数,然后视频服务器便会以所需的速度,每隔一定的时间送出一帧数据,再由用户进程及时对它进行处理。如下图(b)示出了这种工作方式。通常把这种服务器称为推型服务器,因为它不断将数据“推”给用户。
-
多媒体文件的存储空间分配方式
在传统的文件系统中,文件组织的一个重要目标是通过减少内部和外部磁盘碎片,提高磁盘空间的利用率。为此,存储空间的分配主要采用基于盘块的离散分配方式。而在多媒体文件系统中,文件组织的一个重要目标是能提供恒定速率的数据流和能及时地检索数据。如果将一个多媒体文件的数据盘块分散地存放在磁盘的不同位置,将会使在传送一个连续的数据流时,不断地进行寻道,从一个盘块转到另一个盘块,导致所传送的数据流出现断断续续的现象。因此在视频服务器中,对多媒体文件主要采用连续分配方式。当然这样可能会引起较多的内部和外部碎片,但可以赢得时间,即以空间换取时间。
-
人机交换性
用户在通过媒体服务器观看节目时,可根据自己的爱好,任意点播喜欢看的节目。在观看节目时,还可选择自己所熟悉的语言音频和字幕,并且可以根据需要随时更换。此外,用户还可以随时停止(或暂停)正在观看的电视,或(让电视)从一集跳至下一集,或让电影快进或快退,即媒体服务器需要具有人机交互的功能。
传统的电视在传输的实现上比较简单,每套节目只需要一条频(信)道,而不管有多少人看。然而能进行人机交互的媒体服务器实现起来就困难得多,主要表现为:
(1) 它需要为每一个用户准备一条信道,如果允许1000个用户同时收看节目,就需要有1000条信道。
(2) 这1000个用户都可以根据自己的爱好来点播,这样媒体服务器就可能要同时播放许多不同的节目。
(3) 有的节目可能只有一个用户观看,但有些流行节目则可能有许多用户同时或接近同时观看,为此,服务器必须能够让众多用户同时观看一个节目,即众多用户能同时进行人机交互。
5.2 存储器管理中的接纳控制
为了能保证SRT任务的实时性,存储器必须能及时地提供数据,而存储器能否及时提供数据的关键是SRT任务运行时所需的数据是否驻留在物理内存中。因此,在存储器管理中增加了存储器页面锁定功能。
-
存储器页面锁定功能
对于某个SRT任务来说,如果其某些页面未在物理内存,而在运行中又需要用到这些页面上的代码或数据,则将发生缺页中断,这意味着所需的页面必须从磁盘中读取。由于读盘所需的时间不仅较长,而且是不确定的,这无疑会给SRT任务带来极大的影响。为避免发生缺页中断情况,一个行之有效的方法是将SRT任务运行时所需的代码和数据锁定在物理内存中。只有这样才有可能保证SRT任务的截止时间。
由于物理内存是非常宝贵的资源,而且容量有限,将SRT任务锁定在内存中,必将减少内存的可用空间,导致系统综合性能的降低。因此不少操作系统都规定了只允许将一部分内存空间分配给SRT任务,通常最多控制在60%~70%内。
-
存储器代理
为了能保证每一个SRT任务的实时性,如同处理机预留CPU带宽一样,我们也引入了存储空间预留功能,为每一个SRT任务预留锁定的存储空间。为实现该功能,在存储器管理中增加了两个功能实体:存储器代理和存储器控制器。
为了能为SRT任务预留其所需要的存储器空间,由存储器代理锁定一定数量的内存空间,把它称为全局预留存储空间,它可分为两部分:①接纳存储空间,这部分已经分配给了被接纳的SRT任务,正在使用;②可利用存储空间,即可供新的预留请求使用的存储空间。
-
存储器控制器
存储器控制器的主要任务是,管理为SRT任务锁定的内存页面,以保证CPU能及时获得数据。在SRT任务执行时,将ID传送给存储器控制器。后者利用预留表检查该预留ID是否合法,如果合法,便为SRT任务分配并锁定存储器。存储器控制器还把存储器的钥匙传送给SRT任务,SRT收到后,便建立起存储段与自己的地址空间之间的映射关系。当SRT任务执行完成后,又将向存储器管理程序发送一释放请求,其中也包含了存储器的钥匙。存储器管理程序收到该请求后,便释放它所占有的锁定存储空间,并向存储器代理归还该可用存储空间。
5.3 媒体服务器的接纳控制
通常一个媒体服务器可以同时为多个用户提供服务,由于每一个多媒体数据流都有定时要求,为了保证服务质量,媒体服务器同样也需要设置有接纳控制器功能。该功能根据接纳控制算法确定是否应该接纳某用户对指定数据流的请求。
-
媒体服务器的服务质量
不同的SRT任务,所要求的服务质量并不完全相同。因此,一个媒体服务器应当能够提供几种服务质量,以满足不同用户的需要。通常,可以提供如下三种服务质量保证:
(1) 确定型的保证。
(2) 统计型的保证。
(3) 尽力而为型保证。
-
接纳控制
对于不同的服务质量保证和不同的服务所采用的接纳条件是不一样的,在这里只是讨论接纳控制条件中最基本的问题。
假定媒体服务器与n个客户端连接,每个客户都点播一部数字电影,其每部数据流都是由磁盘送出的。在每一个周期中,每部电影都将播放一帧。每一帧包含了Ki个盘块,这样处理机在每个周期将处理K1、K2、···、Ki、···、Kn序列盘块中的数据。我们必须了解媒体服务器的传送速率能否保证SRT任务播放的实时性,为此需要进行两方面的计算:①计算每个SRT任务在播放每一帧时所需的服务时间,进一步计算在每一个周期每个SRT任务都播放一帧时需要的总时间。②计算媒体服务器传送每一帧数据所需的时间,进而计算出每一个周期需要的总时间。如果每一个周期都播放一帧时所需的总服务时间都能大于媒体服务器在相应周期传送相关数据所需的总时间,那么就可以保证所有任务的实时性,反之则不能。
对于确定型的保证和统计型的保证,在计算方法上是完全相同的,差别仅在于所使用的参数有所不同。对于确定型的保证,在计算中所采用的应当是最坏情况下的参数,如磁盘的寻道时间最长,而对于统计型的保证所用的应当是统计性参数。
6.多媒体存储器的分配方法
6.1 交叉连续存放方式
-
多媒体文件存放中的问题
多媒体文件存放最重要的要求是,存放在硬盘上的数据如何能快速地传送到输出设备上,不会发生因送出数据不及时而使屏幕上的画面发生颤动。在采用离散分配方式时,在磁盘传输速率足够高的情况下,送出数据不够及时最主要的原因是在传输一帧的过程中需要进行多个寻道,由于寻道和磁盘旋转延迟通常都需要数十毫秒,很难及时将数据送出。因此,多媒体文件都采用连续文件。
-
交叉连续存放方式
在该方式中,不仅要求多媒体中的每个文件是连续文件,而且还需在不同文件间采取按帧交叉的方式存放。首先存放第一帧中的视频数据,紧靠着它存放第一帧中的各种音频数据,然后是存放第一帧中的多个文章数据,如下图所示。在从磁盘读出时,最简单的方法是将每一帧中所有数据全部读出到内存的缓冲区中,然后只将用户所需的部分传送给用户。
6.2 帧索引存放方式
为了克服交叉连续存放方式的缺点,即在每一部数字电影中所包含的视频文件、音频文件和多个文本文件都需要连续存放,而引入了索引存放方式。该方式有可分为两种:
(1) 帧索引存放方式,又称为小盘块法。
(2) 块索引存放方式,又称为大盘块法。
-
帧索引存放方式的基本原理
在小盘块法中,所选定的盘块大小应远小于帧的大小。对于每秒30帧的MPEG-II而言,帧的平均大小为16KB,通常选定盘块大小仅为1KB或2KB,故将它又称为小盘块法。这样,电影中的每一帧信息需要存放在一连串的连续盘块中。和前面一样,在这一串连续的盘块中,仍是包含了一个视频、多个音频和多个文本文件的数据。
在系统中,为每部电影建立一个帧索引表。其中的每一个表项至少应有两个字段,一个是地址字段,它用于存放相应帧所在盘块的始址。另一个是帧长字段,用于存放该帧的盘块数目,如下图(a)、
-
帧索引存放方式的性能分析
(1) 支持随机访问。
(2) 支持快进快退。
(3) 磁盘碎片较小。
(4) 帧索引表大。
(5) 缓冲管理简单。
(6) 存储管理复杂。
6.3 块索引存放方式
-
块索引存放方式的基本原理
在块索引存放方式中所选定的盘块较大,其大小应远大于一帧的大小,如256KB,以便在一个盘块中可以存放多个帧,故将它称为大盘块法。由于在大盘块法中每个数据块的大小是相同的,故把这种组织称为恒定数据长度。
在大盘块法中,所配置的索引表采用的是块索引,它是以盘块号为索引,而不是以帧号为索引。在每一个索引表项中同样需要两个字段,一个帧号字段用来存放该块中的第一个帧的帧号,另一个字段存放该块中所存放的帧数。另外还需要几个地址字段,用于存放在本盘块中每一帧的盘块始址。这样通过查找盘块号,就可以找到含有指定帧的大盘块,然后再从相应地址项中找到指定帧的盘块始址。大盘块法如上图(b)所示。
-
块索引存放方式的性能分析
(1) 支持随机访问。
(2) 磁盘碎片较大。
(3) 块索引表小。
(4) 缓冲管理复杂。
6.4 近似视频点播的文件存放
-
近似视频点播(near video on demand)
近似视频点播是视频点播的一种近似,它是每隔一定时间开始一次播放。例如,从晚8点开始第1次播出,到晚8:05开始第2次播出,8:10开始第3次播出,···。如果某用户想在8:08时看该电影,那他只须等2分钟,到8:10时便可看到。下图示出了近似视频点播的数据流图。
-
近似视频点播的文件存放
在近似视频点播中,即使电影文件时连续文件,但在它以24个数据流错时送出时,由于每两个相邻的数据流都相差9000帧,因此从一条数据流转至下一个数据流时就需要进行寻道。但如果能采用如下图所示的方法,则几乎可以完全消除寻道操作。其基本思想是,将24路数据流中的在同一时间播放的24帧依次放在一起,作为一个记录写入磁盘。在播放时,也将它们一起读出,这样就避免了寻道。
6.5 多部电影的存储方式
-
单个磁盘的情况
通常,每一部电影的点击率是不同的,许多流行的事物大体上都遵循一种可预测模式,称为Zipf定律,我们使用管风琴算法,将第1流行的电影存储在磁盘的中央,第2、3流行的电影存储在第1流行的电影的两边,以此类推,如下图所示。
-
多个磁盘情况
在视频服务器上的磁盘系统,大都采用许多个磁盘来扩大磁盘系统的容量,如采用RAID磁盘阵列。
为简单起见,假定系统中有四个磁盘,将第一部电影A全部放在磁盘1上,电影B、C和D分布全部放在磁盘2、3和4上,如下图(a)所示。这种存放方式实现简单,故障特性简单明了,如果某一磁盘发生故障,在该盘上的电影信息可能丢失,问题并不严重,因为还可从DVD再装入到另一个盘中。这种存放方式的缺点是,各个磁盘上的负荷与电影的流行程度有关,可能会很不均衡。另一种存放方式是将一部分电影分为几部分,分别存入一个磁盘中,这样在磁盘1上同时存放了A、B、C、D四部电影的一部分。同样,在磁盘2上也同时存放四个电影的一部分,如下图(b)。由于每部电影都是从头开始的,故该方式可能会引起磁盘1的负荷增加。进一步改进是采取交叉存放,将每一部电影的起始部分放入不同的盘中,如图下©。第四种存放方式是采取随机存放,如下图(d)。
7.高速缓存与磁盘调度
7.1 高速缓存
对于传统的OS,在内存中设置高速缓存的主要目的,是为了减少对磁盘的访问时间。所采用的方法是将那些在不久之后可能会被访问的盘块数据放入到高速缓存中,以便以后需要时,可直接从高速缓存中读取,这样就节省了对磁盘的访问时间。然而在播放一部电影时,通常是从头到尾顺序访问,除了某些特殊情况,如重看等,一个盘块一般不会使用两次,因此传统高速缓存技术是不可取的。但高速缓存在多媒体系统中仍有可用之处。
-
块高速缓存
虽说当一个用户在看一部电影时,刚放过的盘块不会被重用,但如果是有多个用户几乎同时在看一部电影,刚放过的盘块则可能会被多次重用。换而言之,当有多个用户几乎同时在看一部电影时,将已看过的部分放入高速缓存是非常有效的方法。为了管理上的方便,应该在那些有多个用户几乎同时观看的电影上标上“可高速缓存”的标记,而其它的电影就不需要高速缓存了。
-
将两个视频流合并
如果两条视频流在时间上相差很少,我们可以对两个视频流进行合并。例如,第一个用户在晚8点观看一部电影,第二个用户在过了10秒后观看同一部电影。虽说我们可以利用高速缓存来保留10秒钟已放过的电影,但这会要求占据很大的存储空间。一个行之有效的方法是通过改变两部电影的播放频率,将两条视频数据流进行合并,使其成为一条视频数据流,如下图所示。
另外一个合并视频流的方法是,在用户1所播放的电影中适当地插播一些广告,用户2仍以正常速度播放电影,经过一段时间后用户2的视频流就会赶上用户1的视频流,以后就可以只播放一条视频流。
-
文件高速缓冲
在一个为公众服务的视频服务中心,通常都应具备有许多电影和电视剧节目。由于在DVD光碟中的电影或电视剧所占用的存储空间都非常大,一般都有数GB,因而不可能都装入视频服务器的磁盘上,而是仍然放在光盘或磁带上。在需要播放某部电影时,再将它们复制到磁盘上。但因光盘特别是磁带的低速性,要将这些电影从光盘复制到磁盘上需要花很多时间。于是在大多数视频服务器中,都是将用户请求最频繁的电影文件放入内存的高速缓存中,而把流行的整部电影文件放在磁盘上。其他的电影文件仍然放在DVD光盘或磁带上。
还可采取另一种方法来使用高速缓冲,在磁盘中先存放每一部电影的最初几分钟片段,当用户请求到某部电影时,先从磁盘中将该电影的第一片段复制到高速缓冲,并开始播放,此时该电影已被复制的第一片段(部分)仍保留在磁盘中以备其他用户请求。与此同时,又将该电影的第二个片段复制到磁盘上,继而又将它送入高速缓冲,同样其拷贝也保留在磁盘上。如果在相当长时间内再无其它用户请求,这时可从高速缓冲中清除该电影。
7.2 静态磁盘调度
-
可预测性
在多媒体系统中,无论是电影还是电视剧都是连续播放的,即在播放了第i帧后,紧接着就会播放第i+1帧,这就大大提高了请求的可预测性。
-
按磁道顺序排序
7.3 动态磁盘调度
-
动态磁盘调度算法应考虑的因素
(1) 令磁盘总寻道时间最小,这是性能因素。
(2) 能满足截止时间要求,这是实时因素。
-
scan-EDF算法
上述的性能因素和实时因素经常会发生矛盾。为了满足前者,往往会错过最终时限。反之,为了满足后者,则又会增加总寻道时间。scan-EDF算法同时考虑这两个因素,并将这两个因素结合起来,以达到既能基本上满足实时性要求,又可获得较好性能的目的。该算法的基本思想是,基于实时因素是硬性要求的这一特性,先考虑截止时间要求,将多个截止时间相近的磁盘请求放在一个组中,由此可以形成若干个组,在每一个组中再按照磁道号进行排序。
标签:多媒体,操作系统,第十一章,电影,任务,存放,SRT,磁盘 来源: https://blog.csdn.net/m0_50833438/article/details/115272395